#pragma once
#include <map>
#include <vector>
#include <string>
#include "StarUtil.h"
#include <BWAPI.h>
#include "StrategyGen.h"
// Generators all possible startegies
class StratGen
{
public:
	StratGen(void);
	~StratGen(void);
	// sets the possible enemy targets
	void setEnemy(std::vector<std::string> _targets);
	// sets the AI units
	void addunits(std::vector<std::string> unts);
	// Returns the next strategy if there is one
	std::map<std::string, std::vector<std::string>*> & getNextStrat();
	// If there are more startegies returns true should be called
	// before getNextStrat is called.
	bool isMore();
	// resets the generator
	void reset();

private:
	std::map<std::string, std::vector<std::string>*> strategy;	
	std::map<std::string, std::vector<std::string>::iterator> itera;
	std::vector<std::string> enemyAir;
	std::vector<std::string> enemyGround;

	bool more;
};
